package app.qrcode.browser.vacablarydemo

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.text.Editable
import android.view.LayoutInflater
import android.widget.EditText
import android.widget.LinearLayout
import androidx.appcompat.app.AlertDialog
import androidx.recyclerview.widget.LinearLayoutManager
import app.qrcode.browser.vacablarydemo.model.adapter.WordAdapter
import app.qrcode.browser.vacablarydemo.model.bean.VocabularyBean
import app.qrcode.browser.vacablarydemo.model.dao.VocabularyDao
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    private val wordAdapter by lazy { WordAdapter() }


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        add_button.setOnClickListener {
            val view = LayoutInflater.from(this).inflate(R.layout.add_new_word, null)
            AlertDialog.Builder(this)
                .setTitle("添加新单词")
                .setView(view)
                .setPositiveButton("确定") { _, _ ->
                    val newWordChn =
                        view.findViewById<EditText>(R.id.chinese_meaning_et).text.toString()
                    val newWordEng =
                        view.findViewById<EditText>(R.id.english_meaning_et).text.toString()
                    val wordData = newWordEng + "               " + newWordChn
                    VocabularyDao.add(newWordEng, newWordChn)
                    wordAdapter.wordList.add(VocabularyBean(0, wordData))
                    VocabularyDao.queryAll(wordAdapter.wordList)
                    wordAdapter.notifyDataSetChanged()
                }
                .setNegativeButton("取消") { _, _ ->
                }
                .create()
                .show()
        }
        query_button.setOnClickListener {
            val view = LayoutInflater.from(this).inflate(R.layout.search_word, null)
            AlertDialog.Builder(this)
                .setTitle("搜索单词")
                .setView(view)
                .setPositiveButton("确定") { _, _ ->
                    val newWordEng =
                        view.findViewById<EditText>(R.id.search_word_et).text.toString()
                    VocabularyDao.query(newWordEng, wordAdapter.wordList)
                    wordAdapter.notifyDataSetChanged()
                }
                .setNegativeButton("取消") { _, _ ->
                }
                .create()
                .show()
        }
        restore_button.setOnClickListener {
            VocabularyDao.queryAll(wordAdapter.wordList)
            wordAdapter.notifyDataSetChanged()
        }
        VocabularyDao.queryAll(wordAdapter.wordList)
        recyclerView.adapter = wordAdapter
        recyclerView.layoutManager = LinearLayoutManager(this)

//        val dataList = listOf(
//            "alter v 改变，改动,变更",
//            "burst vi,n 突然发生，爆裂",
//            "dispose vi 除掉；处置；解决；处理(of)",
//            "blast n 爆炸；气流 vi 炸，炸掉",
//            "consume v 消耗，耗尽",
//            "split v 劈开；割裂；分裂 a裂开的",
//            "spit v 吐（唾液等）；唾弃",
//            "spill v 溢出，溅出，倒出",
//            "slip v 滑动，滑落；忽略",
//            "slide v 滑动，滑落 n 滑动；滑面；幻灯片",
//            "bacteria n 细菌",
//            "breed n 种，品种 v 繁殖，产仔",
//            "budget n 预算 v 编预算，作安排",
//            "candidate n 候选人",
//            "campus n 校园",
//            "liberal a 慷慨的；丰富的；自由的",
//            "transform v 转变，变革；变换",
//            "transmit v 传播，播送；传递",
//            "transplant v 移植",
//            "transport vt 运输，运送 n 运输，运输工具",
//            "shift v 转移；转动；转变",
//            "vary v 变化，改变；使多样化",
//            "vanish vi 消灭，不见",
//            "swallow v 吞下，咽下 n 燕子",
//            "suspicion n 怀疑，疑心",
//            "suspicious a 怀疑的，可疑的",
//            "mild a 温暖的，暖和的；温柔的，味淡的",
//            "tender a 温柔的；脆弱的",
//            "nuisance n 损害，妨害，讨厌（的人或事物）",
//            "insignificant a 无意义的，无足轻重的；无价值的",
//            "accelerate vt 加速，促进",
//            "absolute a 绝对的，无条件的；完全的",
//            "boundary n 分界线，边界",
//            "brake n 刹车，制动器 v 刹住（车）",
//            "catalog n 目录（册） v 编目",
//            "vague a 模糊的，不明确的",
//            "vain n 徒劳，白费",
//            "extinct a 绝灭的，熄灭的",
//            "extraordinary a 不平常的，特别的，非凡的",
//            "extreme a 极度的，极端的 n 极端，过分",
//            "agent n 代理人，代理商；动因，原因",
//            "alcohol n 含酒精的饮料，酒精",
//            "appeal n/vi 呼吁，恳求",
//            "appreciate vt 重视，赏识，欣赏",
//            "approve v 赞成，同意，批准",
//            "stimulate vt 刺激，激励",
//            "acquire vt 取得，获得；学到",
//            "accomplish vt 完成，到达；实行",
//            "network n 网状物；广播网，电视网；网络",
//            "tide n 潮汐；潮流",
//            "tidy a 整洁的，整齐的",
//            "trace vt 追踪，找到 n 痕迹，踪迹",
//            "torture n/vt 拷打，折磨",
//            "wander vi 漫游，闲逛",
//            "wax n 蜡",
//            "weave v 织，编",
//            "preserve v 保护，保存，保持，维持",
//            " highlight vt 强调，突出",
//            " hence ad 因此，所以；今后，从此",
//            " herd n 兽群，牧群",
//            " abuse v 滥用，虐待；谩骂",
//            " academic a 学术的；高等院校的；研究院的",
//            " academy n （高等）专科院校；学会",
//            " battery n 电池（组）",
//            " barrier n 障碍；棚栏",
//            " cargo n （船、飞机等装载的）货物",
//            " career n 生涯，职业",
//            " vessel n 船舶；容器，器皿；血管",
//            " vertical a 垂直的",
//            " oblige v 迫使，责成；使感激",
//            " obscure a 阴暗，模糊",
//            " extent n 程度，范围，大小，限度",
//            " exterior n 外部，外表 a 外部的，外表的",
//            " external a 外部的，外表的，外面的",
//            " petrol n 汽油",
//            " petroleum n 石油",
//            " delay vt/n 推迟，延误，耽搁",
//            " decay vi 腐烂，腐朽",
//            " decent a 像样的，体面的",
//            " route n 路；路线；航线",
//            " ruin v 毁坏，破坏 n 毁灭，[pl]废墟",
//            " sake n 缘故，理由",
//            " satellite n 卫星",
//            " scale n 大小，规模；等级；刻度",
//            " temple n 庙宇",
//            " tedious a 乏味道，单调的，",
//            " tend vi易于，趋向",
//            " tendency n趋向，趋势",
//            " ultimate a 极端的，最大的，最终的 n 极端",
//            " undergo v 经历，遭受",
//            " abundant a 丰富的，充裕的，大量的",
//            " adopt v 收养；采用；采纳",
//            " adapt vi 适应，适合；改编，改写 vt 使适应",
//            " bachelor n 学士，学士学位；单身汉",
//            " casual a 偶然的，碰巧的；临时的；非正式的",
//            " trap n 陷阱，圈套 v 设陷阱捕捉",
//            " vacant a 空的，未占用的",
//            " vacuum n 真空，真空吸尘器",
//            " oral a 口头的，口述的，口的",
//            " optics n （单、复数同形）光学",
//            " organ n 器官，风琴",
//            " excess n 过分，过量，过剩",
//            " expel v 驱逐，开除，赶出",
//            " expend v 消费",
//            " expenditure n 支出，消费；经费",
//            " expense n 开销，费用",
//            " expensive a 花钱多的；价格高贵的",
//            " expand v 扩大，扩张；展开，膨胀",
//            " expansion n 扩大，扩充；发展，膨胀",
//            " private a 私人的，个人的",
//            " individual a 个别的，单独的 n 个人，个体",
//            " personal a 个人的，私人的；亲自的",
//            " personnel n [总称]人员，员工；人事部门",
//            " the Pacific Ocean 太平洋",
//            " the Atlantic Ocean 大西洋",
//            " the Arctic Ocean 北冰洋",
//            " the Antarctic Ocean 南冰洋",
//            " grant vt 授予，同意，准予",
//            " grand a 宏伟大，壮丽的，重大的",
//            " invade v 侵入，侵略，侵袭",
//            " acid n 酸，酸性物质 a 酸的；尖刻的",
//            " acknowledge v 承认；致谢",
//            " balcony n 阳台",
//            " calculate vt 计算，核算",
//            " calendar n 日历，月历",
//            " optimistic a 乐观",
//            " optional a 可以任选的，非强制的",
//            " outstanding a 杰出的，突出的，显著的",
//            " export n 出口（物） v 出口，输出",
//            " import n 进口（物） v 进口，输入",
//            " impose vt 把加强(on)；采用，利用",
//            " religion n 宗教，宗教信仰",
//            " religious a 宗教的",
//            " victim n 牺牲品，受害者",
//            " video n 电视，视频 a 电视的，录像的",
//            " videotape n 录像磁带 v 把录在录像带上",
//            " offend v 冒犯，触犯",
//            " bother v 打搅，麻烦",
//            " interfere v 干涉，干扰，妨碍",
//            " internal a 内部的，国内的",
//            " beforehand ad 预先，事先",
//            " racial a 人种的种族的",
//            " radiation n 放射物，辐射",
//            " radical a根本的；激进的",
//            " range n 幅度，范围 v （在某范围内）变动",
//            " wonder n 惊奇，奇迹 v 想知道，对感到疑惑",
//            " isolate vt 使隔离，使孤立",
//            " issue n 问题，争论点；发行，（报刊）一期",
//            " hollow a 空的，中空的，空虚道",
//            " hook n 钩 vt 钩住",
//            " adequate a 适当地；足够",
//            " adhere vi 粘附，附着；遵守，坚持",
//            " ban vt 取缔，禁止",
//            " capture vt 俘虏，捕获",
//            " valid a 有效的，有根据的；正当的",
//            " valley n 山谷，峡谷",
//            " consistent a 坚固定；一致的，始终如一的",
//            " continuous a 继续的，连续（不断）的",
//            " continual a 不断地，频繁的",
//            " explode v 爆炸；爆发；激增",
//            " exploit v 剥削；利用，开采",
//            " explore v 勘探",
//            " explosion n 爆炸；爆发；激增",
//            " explosive a 爆炸的；极易引起争论的",
//            " remote a 遥远的，偏僻的",
//            " removal n 除去，消除",
//            " render vt 使得，致使",
//            " precaution n 预防，防备，警惕",
//            " idle a 懒散的，无所事事的",
//            " identify vt 认出，鉴定",
//            " identify n 身份；个性，特性",
//            " poverty n 贫穷",
//            " resistant a (to)抵抗的，抗的，耐的",
//            " resolve vt 解决；决定，决意",
//            " barrel n 桶",
//            " bargain n 便宜货 vi 讨价还价",
//            " coarse a 粗的，粗糙的，粗劣的",
//            " coach n 教练；长途公共汽车",
//            " code n 准则，法规，密码",
//            " coil n 线圈 v 卷，盘绕",
//            " adult n 成年人",
//            " advertise v 为做广告",
//            " advertisement n 广告",
//            " agency n 代理商，经销商",
//            " focus v （使）聚集 n 焦点，中心，聚焦",
//            " forbid vt 不许，禁止",
//            " debate n/v 辩论，争论",
//            " debt n 欠债",
//            " decade n 十年",
//            " enclose vt 围住；把装入信封",
//            " encounter vt/n 遭遇，遭到",
//            " globe n 地球，世界；地球仪",
//            " global a 全球的；总的",
//            " scan vt 细看；扫描；浏览",
//            " scandal n 丑事，丑闻",
//            " significance n 意义；重要性",
//            " subsequent a 随后的，后来的",
//            " virtue n 美德，优点",
//            " virtual a 实际上的，事实上的",
//            " orient vt 使适应，(to,toward)使朝向 n 东方",
//            " portion n 一部分",
//            " target n 目标，靶子 vt 瞄准",
//            " portable a 手提式的",
//            " decline v 拒绝，谢绝；下降",
//            " illusion n 错觉",
//            " likelihood n 可能，可能性",
//            " stripe n 条纹",
//            " emphasize vt 强调，着重",
//            " emotion n 情感，感情",
//            " emotional a 感情的，情绪（上）的",
//            " awful a 极坏的，威严的，可怕的",
//            " awkward a 笨拙的，棘手的",
//            " clue n 线索，提示",
//            " collision n 碰撞，冲突",
//            " device n 装置，设备",
//            " devise vt 发明，策划，想出",
//            " inevitable a 不可避免的",
//            " naval a 海军的",
//            " navigation n 航行",
//            " necessity n 必需品；必要性",
//            " previous a 先，前，以前的",
//            " provision n [pl]给养，口粮；准备，设备，装置",
//            " pursue vt 追逐；追求；从事，进行",
//            " stale a 不新鲜的，陈腐的",
//            " substitute n 代用品 vt 代替",
//            " deserve vt 应受，应得，值得",
//            " discrimination n 歧视；辨别力",
//            " professional a 职业的，专门的",
//            " secure a 安全的，可靠的",
//            " security n 安全，保障",
//            " scratch v/n 抓，搔，扒",
//            " talent n 才能，天资；人才",
//            " insurance n 保险，保险费",
//            " insure vt 给保险，保证，确保",
//            " nevertheless ad 仍然，然而，不过",
//            " neutral a 中立的，中性的",
//            " spot n 地点；斑点 vt 认出，发现；玷污",
//            " spray v 喷，（使）溅散",
//            " medium a 中等的，适中的 n 媒介物，新闻媒介",
//            " media n 新闻传媒",
//            " auxiliary a 辅助的，备用的",
//            " automatic a 自动的",
//            " compete vi 竞争，比赛",
//            " competent a 有能力的，能胜任的",
//            " competition n 竞争，比赛",
//            " distribute vt 分发",
//            " disturb vt 打搅，妨碍",
//            " infer v 推论，推断",
//            " integrate v (into,with)（使）成为一体，（使）合并",
//            " moist a 潮湿",
//            " moisture n 潮湿",
//            " promote vt 促进；提升",
//            " region n 地区；范围；幅度",
//            " register v/n登记，注册",
//            " stable a 稳定的",
//            " sophisticated a 老于世故的，老练的；很复杂的",
//            " splendid a 极好的，壮丽的，辉煌的",
//            " cancel vt 取消，废除",
//            " variable a 易变的，可变的",
//            " prospect n 前景，前途；景象",
//            " prosperity n兴旺，繁荣",
//            " aspect n 方面；朝向；面貌",
//            " cope vi (with)（成功地）应付，处理",
//            " core n 果心，核心",
//            " maintain vt 维持，保持；坚持，主张",
//            " mainland n 大陆",
//            " discipline n 纪律；惩罚；学科",
//            " domestic a 本国的，国内的；家用的；家庭的",
//            " constant a 不变的，恒定的 n 常数",
//            " cliff n 悬崖，峭壁",
//            " authority n 权威；当局",
//            " audio a 听觉",
//            " attitude n 态度",
//            " community n 社区，社会",
//            " commit vt 犯（错误，罪行等），干（坏事等）",
//            " comment n/vt 评论",
//            " distinguish vt 区分，辨别",
//            " distress n 痛苦，悲伤 vt 使痛苦",
//            " facility n [pl] 设备，设施；便利，方便",
//            " faculty n 能力，技能；系，学科，学院；全体教员",
//            " mixture n 混合，混合物",
//            " mood n 心情，情绪；语气",
//            " moral a 道德上的，有道德的",
//            " prominent a 突出的",
//            " substance n 物质；实质",
//            " substantial a 可观的；牢固的；实质的",
//            " prompt vt 促使 a 敏捷的，及时的",
//            " vivid a 生动的",
//            " vocabulary n 词汇（量）；词汇表",
//            " venture n 风险投资，风险项目 v 冒险；取于",
//            " version n 版本，译本；说法",
//            " waist n 腰，腰部",
//            " weld v/n 焊接",
//            " yawn vi 打哈欠",
//            " yield vi (to)屈服于；让出，放弃 n 产量",
//            " zone n 地区，区域",
//            " strategy n 战略，策略",
//            " strategic a 战略（上）的，关键的",
//            " tense a 紧张的 v 拉紧 n 时态",
//            " tension n 紧张（状态），张力"
//        )
//        button2.setOnClickListener {
//            VocabularyDao.init(dataList)
//        }
    }
}
